-- Configuration

external class "Object" ;
use list "List" ;
use string "String" ;

-- Grammar

program    ::= statement* ;
statement  ::= assignment | while | print ;
assignment ::= literal | add ;
while      ::= VAR statement* ;
literal    ::= lhs:VAR INTEGER<long> ;
add        ::= lhs:VAR left:VAR right:VAR ; 
print      ::= VAR ;

-- Mixin code

#include "lib/Object.h"
#include "lib/List.h"
#include "lib/String.h"

class AST_node : Object {} ;
